;; -*- scheme -*-
; object definitions ...
(define-object BitArray
  (in-module "G")
  (parent "GObject")
  (c-name "GBitArray")
  (gtype-id "G_TYPE_BIT_ARRAY")
)

(define-object GslMatrix
  (in-module "G")
  (parent "GObject")
  (c-name "GGslMatrix")
  (gtype-id "G_TYPE_GSL_MATRIX")
)

(define-object GslPermutation
  (in-module "G")
  (parent "GObject")
  (c-name "GGslPermutation")
  (gtype-id "G_TYPE_GSL_PERMUTATION")
)

(define-object GslVector
  (in-module "G")
  (parent "GObject")
  (c-name "GGslVector")
  (gtype-id "G_TYPE_GSL_VECTOR")
)

(define-object Administrand
  (in-module "Oscats")
  (parent "GObject")
  (c-name "OscatsAdministrand")
  (gtype-id "OSCATS_TYPE_ADMINISTRAND")
)

(define-object AlgChooser
  (in-module "Oscats")
  (parent "GObject")
  (c-name "OscatsAlgChooser")
  (gtype-id "OSCATS_TYPE_ALG_CHOOSER")
)

(define-object Algorithm
  (in-module "Oscats")
  (parent "GInitiallyUnowned")
  (c-name "OscatsAlgorithm")
  (gtype-id "OSCATS_TYPE_ALGORITHM")
)

(define-object AlgSimulateTheta
  (in-module "Oscats")
  (parent "OscatsAlgorithm")
  (c-name "OscatsAlgSimulateTheta")
  (gtype-id "OSCATS_TYPE_ALG_SIMULATE_THETA")
)

(define-object AlgSimulateAlpha
  (in-module "Oscats")
  (parent "OscatsAlgorithm")
  (c-name "OscatsAlgSimulateAlpha")
  (gtype-id "OSCATS_TYPE_ALG_SIMULATE_ALPHA")
)

(define-object AlgPickRand
  (in-module "Oscats")
  (parent "OscatsAlgorithm")
  (c-name "OscatsAlgPickRand")
  (gtype-id "OSCATS_TYPE_ALG_PICK_RAND")
)

(define-object AlgMaxKlDiscr
  (in-module "Oscats")
  (parent "OscatsAlgorithm")
  (c-name "OscatsAlgMaxKlDiscr")
  (gtype-id "OSCATS_TYPE_ALG_MAX_KL_DISCR")
)

(define-object AlgMaxKlCont
  (in-module "Oscats")
  (parent "OscatsAlgorithm")
  (c-name "OscatsAlgMaxKlCont")
  (gtype-id "OSCATS_TYPE_ALG_MAX_KL_CONT")
)

(define-object AlgMaxFisher
  (in-module "Oscats")
  (parent "OscatsAlgorithm")
  (c-name "OscatsAlgMaxFisher")
  (gtype-id "OSCATS_TYPE_ALG_MAX_FISHER")
)

(define-object AlgFixedLength
  (in-module "Oscats")
  (parent "OscatsAlgorithm")
  (c-name "OscatsAlgFixedLength")
  (gtype-id "OSCATS_TYPE_ALG_FIXED_LENGTH")
)

(define-object AlgExposureCounter
  (in-module "Oscats")
  (parent "OscatsAlgorithm")
  (c-name "OscatsAlgExposureCounter")
  (gtype-id "OSCATS_TYPE_ALG_EXPOSURE_COUNTER")
)

(define-object AlgEstimateTheta
  (in-module "Oscats")
  (parent "OscatsAlgorithm")
  (c-name "OscatsAlgEstimateTheta")
  (gtype-id "OSCATS_TYPE_ALG_ESTIMATE_THETA")
)

(define-object AlgEstimateAlpha
  (in-module "Oscats")
  (parent "OscatsAlgorithm")
  (c-name "OscatsAlgEstimateAlpha")
  (gtype-id "OSCATS_TYPE_ALG_ESTIMATE_ALPHA")
)

(define-object AlgClosestDiff
  (in-module "Oscats")
  (parent "OscatsAlgorithm")
  (c-name "OscatsAlgClosestDiff")
  (gtype-id "OSCATS_TYPE_ALG_CLOSEST_DIFF")
)

(define-object AlgClassRates
  (in-module "Oscats")
  (parent "OscatsAlgorithm")
  (c-name "OscatsAlgClassRates")
  (gtype-id "OSCATS_TYPE_ALG_CLASS_RATES")
)

(define-object Attributes
  (in-module "Oscats")
  (parent "GObject")
  (c-name "OscatsAttributes")
  (gtype-id "OSCATS_TYPE_ATTRIBUTES")
)

(define-object ContModel
  (in-module "Oscats")
  (parent "GObject")
  (c-name "OscatsContModel")
  (gtype-id "OSCATS_TYPE_CONT_MODEL")
)

(define-object ContModelL1p
  (in-module "Oscats")
  (parent "OscatsContModel")
  (c-name "OscatsContModelL1p")
  (gtype-id "OSCATS_TYPE_CONT_MODEL_L1P")
)

(define-object ContModelL2p
  (in-module "Oscats")
  (parent "OscatsContModel")
  (c-name "OscatsContModelL2p")
  (gtype-id "OSCATS_TYPE_CONT_MODEL_L2P")
)

(define-object ContModelL3p
  (in-module "Oscats")
  (parent "OscatsContModel")
  (c-name "OscatsContModelL3p")
  (gtype-id "OSCATS_TYPE_CONT_MODEL_L3P")
)

(define-object ContModelNominal
  (in-module "Oscats")
  (parent "OscatsContModel")
  (c-name "OscatsContModelNominal")
  (gtype-id "OSCATS_TYPE_CONT_MODEL_NOMINAL")
)

(define-object Covariates
  (in-module "Oscats")
  (parent "GObject")
  (c-name "OscatsCovariates")
  (gtype-id "OSCATS_TYPE_COVARIATES")
)

(define-object DiscrModel
  (in-module "Oscats")
  (parent "GObject")
  (c-name "OscatsDiscrModel")
  (gtype-id "OSCATS_TYPE_DISCR_MODEL")
)

(define-object DiscrModelDina
  (in-module "Oscats")
  (parent "OscatsDiscrModel")
  (c-name "OscatsDiscrModelDina")
  (gtype-id "OSCATS_TYPE_DISCR_MODEL_DINA")
)

(define-object DiscrModelNida
  (in-module "Oscats")
  (parent "OscatsDiscrModel")
  (c-name "OscatsDiscrModelNida")
  (gtype-id "OSCATS_TYPE_DISCR_MODEL_NIDA")
)

(define-object Examinee
  (in-module "Oscats")
  (parent "GObject")
  (c-name "OscatsExaminee")
  (gtype-id "OSCATS_TYPE_EXAMINEE")
)

(define-object Integrate
  (in-module "Oscats")
  (parent "GObject")
  (c-name "OscatsIntegrate")
  (gtype-id "OSCATS_TYPE_INTEGRATE")
)

(define-object Item
  (in-module "Oscats")
  (parent "OscatsAdministrand")
  (c-name "OscatsItem")
  (gtype-id "OSCATS_TYPE_ITEM")
)

(define-object ItemBank
  (in-module "Oscats")
  (parent "OscatsAdministrand")
  (c-name "OscatsItemBank")
  (gtype-id "OSCATS_TYPE_ITEM_BANK")
)

(define-object Test
  (in-module "Oscats")
  (parent "GObject")
  (c-name "OscatsTest")
  (gtype-id "OSCATS_TYPE_TEST")
)

;; Enumerations and flags ...


;; From administrand.h

(define-function oscats_administrand_get_type
  (c-name "oscats_administrand_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-function oscats_administrand_reset_characteristics
  (c-name "oscats_administrand_reset_characteristics")
  (return-type "none")
  (parameters
  )
)

(define-function oscats_administrand_register_characteristic
  (c-name "oscats_administrand_register_characteristic")
  (return-type "none")
  (parameters
    '("GQuark" "characteristic")
  )
)

(define-function oscats_administrand_characteristic_from_string
  (c-name "oscats_administrand_characteristic_from_string")
  (return-type "GQuark")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-function oscats_administrand_characteristic_as_string
  (c-name "oscats_administrand_characteristic_as_string")
  (return-type "const-gchar*")
  (parameters
    '("GQuark" "characteristic")
  )
)

(define-method set_characteristic
  (of-object "OscatsAdministrand")
  (c-name "oscats_administrand_set_characteristic")
  (return-type "none")
  (parameters
    '("GQuark" "characteristic")
  )
)

(define-method clear_characteristic
  (of-object "OscatsAdministrand")
  (c-name "oscats_administrand_clear_characteristic")
  (return-type "none")
  (parameters
    '("GQuark" "characteristic")
  )
)

(define-method clear_characteristics
  (of-object "OscatsAdministrand")
  (c-name "oscats_administrand_clear_characteristics")
  (return-type "none")
)

(define-method has_characteristic
  (of-object "OscatsAdministrand")
  (c-name "oscats_administrand_has_characteristic")
  (return-type "gboolean")
  (parameters
    '("GQuark" "characteristic")
  )
)

(define-method characteristics_iter_reset
  (of-object "OscatsAdministrand")
  (c-name "oscats_administrand_characteristics_iter_reset")
  (return-type "none")
)

(define-method characteristics_iter_next
  (of-object "OscatsAdministrand")
  (c-name "oscats_administrand_characteristics_iter_next")
  (return-type "GQuark")
)

(define-method is_cont
  (of-object "OscatsAdministrand")
  (c-name "oscats_administrand_is_cont")
  (return-type "gboolean")
)

(define-method is_discr
  (of-object "OscatsAdministrand")
  (c-name "oscats_administrand_is_discr")
  (return-type "gboolean")
)

(define-method num_dims
  (of-object "OscatsAdministrand")
  (c-name "oscats_administrand_num_dims")
  (return-type "guint")
)

(define-method num_attrs
  (of-object "OscatsAdministrand")
  (c-name "oscats_administrand_num_attrs")
  (return-type "guint")
)

(define-method max_resp
  (of-object "OscatsAdministrand")
  (c-name "oscats_administrand_max_resp")
  (return-type "guint")
)



;; From algorithm.h

(define-function oscats_algorithm_get_type
  (c-name "oscats_algorithm_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-method register
  (of-object "OscatsAlgorithm")
  (c-name "oscats_algorithm_register")
  (return-type "OscatsAlgorithm*")
  (parameters
    '("OscatsTest*" "test")
  )
)



;; From algorithms.h



;; From attributes.h

(define-function oscats_attributes_get_type
  (c-name "oscats_attributes_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-function oscats_attributes_from_string
  (c-name "oscats_attributes_from_string")
  (return-type "OscatsAttributes*")
  (parameters
    '("const-gchar*" "str")
  )
)

(define-method set
  (of-object "OscatsAttributes")
  (c-name "oscats_attributes_set")
  (return-type "none")
  (parameters
    '("guint8" "index")
    '("gboolean" "value")
  )
)

(define-method get
  (of-object "OscatsAttributes")
  (c-name "oscats_attributes_get")
  (return-type "gboolean")
  (parameters
    '("guint8" "index")
  )
)

(define-method as_int
  (of-object "OscatsAttributes")
  (c-name "oscats_attributes_as_int")
  (return-type "guint32")
)

(define-method as_string
  (of-object "OscatsAttributes")
  (c-name "oscats_attributes_as_string")
  (return-type "gchar*")
)

(define-method copy
  (of-object "OscatsAttributes")
  (c-name "oscats_attributes_copy")
  (return-type "none")
  (parameters
    '("const-OscatsAttributes*" "rhs")
  )
)

(define-method compare
  (of-object "OscatsAttributes")
  (c-name "oscats_attributes_compare")
  (return-type "gint")
  (parameters
    '("OscatsAttributes*" "b")
  )
)



;; From bitarray.h

(define-function g_bit_array_get_type
  (c-name "g_bit_array_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-function g_bit_array_new
  (c-name "g_bit_array_new")
  (is-constructor-of "GBitArray")
  (return-type "GBitArray*")
  (parameters
    '("guint" "bit_length")
  )
)

(define-method resize
  (of-object "GBitArray")
  (c-name "g_bit_array_resize")
  (return-type "GBitArray*")
  (parameters
    '("guint" "bit_length")
  )
)

(define-method extend
  (of-object "GBitArray")
  (c-name "g_bit_array_extend")
  (return-type "GBitArray*")
  (parameters
    '("guint" "num")
  )
)

(define-method copy
  (of-object "GBitArray")
  (c-name "g_bit_array_copy")
  (return-type "none")
  (parameters
    '("const-GBitArray*" "rhs")
  )
)

(define-method get_len
  (of-object "GBitArray")
  (c-name "g_bit_array_get_len")
  (return-type "guint")
)

(define-method get_num_set
  (of-object "GBitArray")
  (c-name "g_bit_array_get_num_set")
  (return-type "guint")
)

(define-method get_bit
  (of-object "GBitArray")
  (c-name "g_bit_array_get_bit")
  (return-type "gboolean")
  (parameters
    '("guint" "pos")
  )
)

(define-method set_bit
  (of-object "GBitArray")
  (c-name "g_bit_array_set_bit")
  (return-type "GBitArray*")
  (parameters
    '("guint" "pos")
  )
)

(define-method clear_bit
  (of-object "GBitArray")
  (c-name "g_bit_array_clear_bit")
  (return-type "GBitArray*")
  (parameters
    '("guint" "pos")
  )
)

(define-method flip_bit
  (of-object "GBitArray")
  (c-name "g_bit_array_flip_bit")
  (return-type "gboolean")
  (parameters
    '("guint" "pos")
  )
)

(define-method set_bit_val
  (of-object "GBitArray")
  (c-name "g_bit_array_set_bit_val")
  (return-type "GBitArray*")
  (parameters
    '("guint" "pos")
    '("gboolean" "val")
  )
)

(define-method set_range
  (of-object "GBitArray")
  (c-name "g_bit_array_set_range")
  (return-type "GBitArray*")
  (parameters
    '("guint" "start")
    '("guint" "stop")
    '("gboolean" "val")
  )
)

(define-method reset
  (of-object "GBitArray")
  (c-name "g_bit_array_reset")
  (return-type "GBitArray*")
  (parameters
    '("gboolean" "val")
  )
)

(define-method iter_reset
  (of-object "GBitArray")
  (c-name "g_bit_array_iter_reset")
  (return-type "none")
)

(define-method iter_next
  (of-object "GBitArray")
  (c-name "g_bit_array_iter_next")
  (return-type "gint")
)



;; From contmodel.h

(define-function oscats_cont_model_get_type
  (c-name "oscats_cont_model_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-method get_max
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_get_max")
  (return-type "guint8")
)

(define-method P
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_P")
  (return-type "gdouble")
  (parameters
    '("guint" "resp")
    '("const-GGslVector*" "theta")
    '("const-OscatsCovariates*" "covariates")
  )
)

(define-method distance
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_distance")
  (return-type "gdouble")
  (parameters
    '("const-GGslVector*" "theta")
    '("const-OscatsCovariates*" "covariates")
  )
)

(define-method logLik_dtheta
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_logLik_dtheta")
  (return-type "none")
  (parameters
    '("guint" "resp")
    '("const-GGslVector*" "theta")
    '("const-OscatsCovariates*" "covariates")
    '("GGslVector*" "grad")
    '("GGslMatrix*" "hes")
  )
)

(define-method logLik_dparam
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_logLik_dparam")
  (return-type "none")
  (parameters
    '("guint" "resp")
    '("const-GGslVector*" "theta")
    '("const-OscatsCovariates*" "covariates")
    '("GGslVector*" "grad")
    '("GGslMatrix*" "hes")
  )
)

(define-method fisher_inf
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_fisher_inf")
  (return-type "none")
  (parameters
    '("const-GGslVector*" "theta")
    '("const-OscatsCovariates*" "covariates")
    '("GGslMatrix*" "I")
  )
)

(define-method get_param_name
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_get_param_name")
  (return-type "const-gchar*")
  (parameters
    '("guint" "index")
  )
)

(define-method has_param_name
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_has_param_name")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method has_param
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_has_param")
  (return-type "gboolean")
  (parameters
    '("GQuark" "name")
  )
)

(define-method get_param
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_get_param")
  (return-type "gdouble")
  (parameters
    '("GQuark" "name")
  )
)

(define-method get_param_by_index
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_get_param_by_index")
  (return-type "gdouble")
  (parameters
    '("guint" "index")
  )
)

(define-method get_param_by_name
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_get_param_by_name")
  (return-type "gdouble")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method set_param
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_set_param")
  (return-type "none")
  (parameters
    '("GQuark" "name")
    '("gdouble" "value")
  )
)

(define-method set_param_by_index
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_set_param_by_index")
  (return-type "none")
  (parameters
    '("guint" "index")
    '("gdouble" "value")
  )
)

(define-method set_param_by_name
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_set_param_by_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
    '("gdouble" "value")
  )
)

(define-method get_covariate_name
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_get_covariate_name")
  (return-type "const-gchar*")
  (parameters
    '("guint" "index")
  )
)

(define-method has_covariate
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_has_covariate")
  (return-type "gboolean")
  (parameters
    '("GQuark" "name")
  )
)

(define-method has_covariate_name
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_has_covariate_name")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method set_covariate_name
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_set_covariate_name")
  (return-type "none")
  (parameters
    '("guint" "index")
    '("GQuark" "name")
  )
)

(define-method set_covariate_name_str
  (of-object "OscatsContModel")
  (c-name "oscats_cont_model_set_covariate_name_str")
  (return-type "none")
  (parameters
    '("guint" "index")
    '("const-gchar*" "name")
  )
)



;; From covariates.h

(define-function oscats_covariates_get_type
  (c-name "oscats_covariates_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-function oscats_covariates_from_string
  (c-name "oscats_covariates_from_string")
  (return-type "GQuark")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-function oscats_covariates_as_string
  (c-name "oscats_covariates_as_string")
  (return-type "const-gchar*")
  (parameters
    '("GQuark" "name")
  )
)

(define-method set
  (of-object "OscatsCovariates")
  (c-name "oscats_covariates_set")
  (return-type "none")
  (parameters
    '("GQuark" "name")
    '("gdouble" "value")
  )
)

(define-method set_str
  (of-object "OscatsCovariates")
  (c-name "oscats_covariates_set_str")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
    '("gdouble" "value")
  )
)

(define-method get
  (of-object "OscatsCovariates")
  (c-name "oscats_covariates_get")
  (return-type "gdouble")
  (parameters
    '("GQuark" "name")
  )
)

(define-method get_str
  (of-object "OscatsCovariates")
  (c-name "oscats_covariates_get_str")
  (return-type "gdouble")
  (parameters
    '("const-gchar*" "name")
  )
)



;; From discrmodel.h

(define-function oscats_discr_model_get_type
  (c-name "oscats_discr_model_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-method get_max
  (of-object "OscatsDiscrModel")
  (c-name "oscats_discr_model_get_max")
  (return-type "guint8")
)

(define-method P
  (of-object "OscatsDiscrModel")
  (c-name "oscats_discr_model_P")
  (return-type "gdouble")
  (parameters
    '("guint" "resp")
    '("const-OscatsAttributes*" "attr")
  )
)

(define-method logLik_dparam
  (of-object "OscatsDiscrModel")
  (c-name "oscats_discr_model_logLik_dparam")
  (return-type "none")
  (parameters
    '("guint" "resp")
    '("const-OscatsAttributes*" "attr")
    '("GGslVector*" "grad")
    '("GGslMatrix*" "hes")
  )
)

(define-method get_param_name
  (of-object "OscatsDiscrModel")
  (c-name "oscats_discr_model_get_param_name")
  (return-type "const-gchar*")
  (parameters
    '("guint" "index")
  )
)

(define-method has_param_name
  (of-object "OscatsDiscrModel")
  (c-name "oscats_discr_model_has_param_name")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method has_param
  (of-object "OscatsDiscrModel")
  (c-name "oscats_discr_model_has_param")
  (return-type "gboolean")
  (parameters
    '("GQuark" "name")
  )
)

(define-method get_param
  (of-object "OscatsDiscrModel")
  (c-name "oscats_discr_model_get_param")
  (return-type "gdouble")
  (parameters
    '("GQuark" "name")
  )
)

(define-method get_param_by_index
  (of-object "OscatsDiscrModel")
  (c-name "oscats_discr_model_get_param_by_index")
  (return-type "gdouble")
  (parameters
    '("guint" "index")
  )
)

(define-method get_param_by_name
  (of-object "OscatsDiscrModel")
  (c-name "oscats_discr_model_get_param_by_name")
  (return-type "gdouble")
  (parameters
    '("const-gchar*" "name")
  )
)

(define-method set_param
  (of-object "OscatsDiscrModel")
  (c-name "oscats_discr_model_set_param")
  (return-type "none")
  (parameters
    '("GQuark" "name")
    '("gdouble" "value")
  )
)

(define-method set_param_by_index
  (of-object "OscatsDiscrModel")
  (c-name "oscats_discr_model_set_param_by_index")
  (return-type "none")
  (parameters
    '("guint" "index")
    '("gdouble" "value")
  )
)

(define-method set_param_by_name
  (of-object "OscatsDiscrModel")
  (c-name "oscats_discr_model_set_param_by_name")
  (return-type "none")
  (parameters
    '("const-gchar*" "name")
    '("gdouble" "value")
  )
)



;; From examinee.h

(define-function oscats_examinee_get_type
  (c-name "oscats_examinee_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-method set_true_theta
  (of-object "OscatsExaminee")
  (c-name "oscats_examinee_set_true_theta")
  (return-type "none")
  (parameters
    '("const-GGslVector*" "t")
  )
)

(define-method get_true_theta
  (of-object "OscatsExaminee")
  (c-name "oscats_examinee_get_true_theta")
  (return-type "GGslVector*")
)

(define-method set_theta_hat
  (of-object "OscatsExaminee")
  (c-name "oscats_examinee_set_theta_hat")
  (return-type "none")
  (parameters
    '("const-GGslVector*" "t")
  )
)

(define-method get_theta_hat
  (of-object "OscatsExaminee")
  (c-name "oscats_examinee_get_theta_hat")
  (return-type "GGslVector*")
)

(define-method init_theta_err
  (of-object "OscatsExaminee")
  (c-name "oscats_examinee_init_theta_err")
  (return-type "none")
  (parameters
    '("guint" "dim")
  )
)

(define-method get_theta_err
  (of-object "OscatsExaminee")
  (c-name "oscats_examinee_get_theta_err")
  (return-type "GGslMatrix*")
)

(define-method set_true_alpha
  (of-object "OscatsExaminee")
  (c-name "oscats_examinee_set_true_alpha")
  (return-type "none")
  (parameters
    '("const-OscatsAttributes*" "attr")
  )
)

(define-method get_true_alpha
  (of-object "OscatsExaminee")
  (c-name "oscats_examinee_get_true_alpha")
  (return-type "OscatsAttributes*")
)

(define-method set_alpha_hat
  (of-object "OscatsExaminee")
  (c-name "oscats_examinee_set_alpha_hat")
  (return-type "none")
  (parameters
    '("const-OscatsAttributes*" "attr")
  )
)

(define-method get_alpha_hat
  (of-object "OscatsExaminee")
  (c-name "oscats_examinee_get_alpha_hat")
  (return-type "OscatsAttributes*")
)

(define-method prep
  (of-object "OscatsExaminee")
  (c-name "oscats_examinee_prep")
  (return-type "none")
  (parameters
    '("guint" "length_hint")
  )
)

(define-method add_item
  (of-object "OscatsExaminee")
  (c-name "oscats_examinee_add_item")
  (return-type "none")
  (parameters
    '("OscatsItem*" "item")
    '("guint8" "resp")
  )
)

(define-method num_items
  (of-object "OscatsExaminee")
  (c-name "oscats_examinee_num_items")
  (return-type "guint")
)



;; From gsl.h

(define-function g_gsl_vector_get_type
  (c-name "g_gsl_vector_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-function g_gsl_vector_new
  (c-name "g_gsl_vector_new")
  (is-constructor-of "GGslVector")
  (return-type "GGslVector*")
  (parameters
    '("guint" "N")
  )
)

(define-method resize
  (of-object "GGslVector")
  (c-name "g_gsl_vector_resize")
  (return-type "none")
  (parameters
    '("guint" "N")
  )
)

(define-method copy
  (of-object "GGslVector")
  (c-name "g_gsl_vector_copy")
  (return-type "none")
  (parameters
    '("const-GGslVector*" "rhs")
  )
)

(define-method get
  (of-object "GGslVector")
  (c-name "g_gsl_vector_get")
  (return-type "gdouble")
  (parameters
    '("guint" "i")
  )
)

(define-method set
  (of-object "GGslVector")
  (c-name "g_gsl_vector_set")
  (return-type "none")
  (parameters
    '("guint" "i")
    '("gdouble" "x")
  )
)

(define-method set_all
  (of-object "GGslVector")
  (c-name "g_gsl_vector_set_all")
  (return-type "none")
  (parameters
    '("gdouble" "X")
  )
)

(define-method get_size
  (of-object "GGslVector")
  (c-name "g_gsl_vector_get_size")
  (return-type "guint")
)

(define-function g_gsl_matrix_get_type
  (c-name "g_gsl_matrix_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-function g_gsl_matrix_new
  (c-name "g_gsl_matrix_new")
  (is-constructor-of "GGslMatrix")
  (return-type "GGslMatrix*")
  (parameters
    '("guint" "rows")
    '("guint" "cols")
  )
)

(define-method resize
  (of-object "GGslMatrix")
  (c-name "g_gsl_matrix_resize")
  (return-type "none")
  (parameters
    '("guint" "rows")
    '("guint" "cols")
  )
)

(define-method copy
  (of-object "GGslMatrix")
  (c-name "g_gsl_matrix_copy")
  (return-type "none")
  (parameters
    '("const-GGslMatrix*" "rhs")
  )
)

(define-method get
  (of-object "GGslMatrix")
  (c-name "g_gsl_matrix_get")
  (return-type "gdouble")
  (parameters
    '("guint" "row")
    '("guint" "col")
  )
)

(define-method set
  (of-object "GGslMatrix")
  (c-name "g_gsl_matrix_set")
  (return-type "none")
  (parameters
    '("guint" "row")
    '("guint" "col")
    '("gdouble" "x")
  )
)

(define-method set_all
  (of-object "GGslMatrix")
  (c-name "g_gsl_matrix_set_all")
  (return-type "none")
  (parameters
    '("gdouble" "X")
  )
)

(define-method get_rows
  (of-object "GGslMatrix")
  (c-name "g_gsl_matrix_get_rows")
  (return-type "guint")
)

(define-method get_cols
  (of-object "GGslMatrix")
  (c-name "g_gsl_matrix_get_cols")
  (return-type "guint")
)

(define-method solve
  (of-object "GGslMatrix")
  (c-name "g_gsl_matrix_solve")
  (return-type "none")
  (parameters
    '("const-GGslVector*" "y")
    '("GGslVector*" "b")
    '("GGslPermutation*" "p")
  )
)

(define-method invert
  (of-object "GGslMatrix")
  (c-name "g_gsl_matrix_invert")
  (return-type "none")
  (parameters
    '("GGslMatrix*" "X_inv")
    '("GGslPermutation*" "p")
  )
)

(define-method det
  (of-object "GGslMatrix")
  (c-name "g_gsl_matrix_det")
  (return-type "double")
  (parameters
    '("GGslPermutation*" "p")
  )
)

(define-function g_gsl_permutation_get_type
  (c-name "g_gsl_permutation_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-function g_gsl_permutation_new
  (c-name "g_gsl_permutation_new")
  (is-constructor-of "GGslPermutation")
  (return-type "GGslPermutation*")
  (parameters
    '("guint" "N")
  )
)

(define-method resize
  (of-object "GGslPermutation")
  (c-name "g_gsl_permutation_resize")
  (return-type "none")
  (parameters
    '("guint" "N")
  )
)



;; From integrate.h

(define-function oscats_integrate_get_type
  (c-name "oscats_integrate_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-method set_tol
  (of-object "OscatsIntegrate")
  (c-name "oscats_integrate_set_tol")
  (return-type "none")
  (parameters
    '("gdouble" "tol")
  )
)

(define-method set_c_function
  (of-object "OscatsIntegrate")
  (c-name "oscats_integrate_set_c_function")
  (return-type "none")
  (parameters
    '("guint" "dims")
    '("OscatsIntegrateFunction" "f")
  )
)

(define-method cube
  (of-object "OscatsIntegrate")
  (c-name "oscats_integrate_cube")
  (return-type "gdouble")
  (parameters
    '("GGslVector*" "mu")
    '("gdouble" "delta")
    '("gpointer" "data")
  )
)

(define-method box
  (of-object "OscatsIntegrate")
  (c-name "oscats_integrate_box")
  (return-type "gdouble")
  (parameters
    '("GGslVector*" "min")
    '("GGslVector*" "max")
    '("gpointer" "data")
  )
)

(define-method ellipse
  (of-object "OscatsIntegrate")
  (c-name "oscats_integrate_ellipse")
  (return-type "gdouble")
  (parameters
    '("GGslVector*" "mu")
    '("GGslMatrix*" "Sigma")
    '("gdouble" "c")
    '("gpointer" "data")
  )
)

(define-method space
  (of-object "OscatsIntegrate")
  (c-name "oscats_integrate_space")
  (return-type "gdouble")
  (parameters
    '("gpointer" "data")
  )
)



;; From item.h

(define-function oscats_item_get_type
  (c-name "oscats_item_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From itembank.h

(define-function oscats_item_bank_get_type
  (c-name "oscats_item_bank_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-method add_item
  (of-object "OscatsItemBank")
  (c-name "oscats_item_bank_add_item")
  (return-type "none")
  (parameters
    '("OscatsAdministrand*" "item")
  )
)

(define-method num_items
  (of-object "OscatsItemBank")
  (c-name "oscats_item_bank_num_items")
  (return-type "guint")
)

(define-method is_pure
  (of-object "OscatsItemBank")
  (c-name "oscats_item_bank_is_pure")
  (return-type "gboolean")
)

(define-method get_item
  (of-object "OscatsItemBank")
  (c-name "oscats_item_bank_get_item")
  (return-type "const-OscatsAdministrand*")
  (parameters
    '("guint" "i")
  )
)



;; From marshal.h



;; From models.h



;; From oscats.h



;; From random.h

(define-function oscats_rnd_uniform_int
  (c-name "oscats_rnd_uniform_int")
  (return-type "guint32")
  (parameters
  )
)

(define-function oscats_rnd_uniform_int_range
  (c-name "oscats_rnd_uniform_int_range")
  (return-type "gint")
  (parameters
    '("gint" "min")
    '("gint" "max")
  )
)

(define-function oscats_rnd_uniform
  (c-name "oscats_rnd_uniform")
  (return-type "gdouble")
  (parameters
  )
)

(define-function oscats_rnd_uniform_range
  (c-name "oscats_rnd_uniform_range")
  (return-type "gdouble")
  (parameters
    '("gdouble" "min")
    '("gdouble" "max")
  )
)

(define-function oscats_rnd_normal
  (c-name "oscats_rnd_normal")
  (return-type "gdouble")
  (parameters
    '("gdouble" "sd")
  )
)

(define-function oscats_rnd_binorm
  (c-name "oscats_rnd_binorm")
  (return-type "none")
  (parameters
    '("gdouble" "sdx")
    '("gdouble" "sdy")
    '("gdouble" "rho")
    '("gdouble*" "X")
    '("gdouble*" "Y")
  )
)

(define-function oscats_rnd_multinorm_prep
  (c-name "oscats_rnd_multinorm_prep")
  (return-type "none")
  (parameters
    '("const-GGslMatrix*" "sigma")
    '("GGslMatrix*" "sigma_half")
  )
)

(define-function oscats_rnd_multinorm
  (c-name "oscats_rnd_multinorm")
  (return-type "none")
  (parameters
    '("const-GGslVector*" "mu")
    '("const-GGslMatrix*" "sigma_half")
    '("GGslVector*" "x")
  )
)

(define-function oscats_rnd_exp
  (c-name "oscats_rnd_exp")
  (return-type "gdouble")
  (parameters
    '("gdouble" "mu")
  )
)

(define-function oscats_rnd_gamma
  (c-name "oscats_rnd_gamma")
  (return-type "gdouble")
  (parameters
    '("gdouble" "a")
    '("gdouble" "b")
  )
)

(define-function oscats_rnd_beta
  (c-name "oscats_rnd_beta")
  (return-type "gdouble")
  (parameters
    '("gdouble" "a")
    '("gdouble" "b")
  )
)

(define-function oscats_rnd_dirichlet
  (c-name "oscats_rnd_dirichlet")
  (return-type "none")
  (parameters
    '("const-GGslVector*" "alpha")
    '("GGslVector*" "x")
  )
)

(define-function oscats_rnd_poisson
  (c-name "oscats_rnd_poisson")
  (return-type "guint")
  (parameters
    '("gdouble" "mu")
  )
)

(define-function oscats_rnd_binomial
  (c-name "oscats_rnd_binomial")
  (return-type "guint")
  (parameters
    '("guint" "n")
    '("gdouble" "p")
  )
)

(define-function oscats_rnd_multinomial
  (c-name "oscats_rnd_multinomial")
  (return-type "none")
  (parameters
    '("guint" "n")
    '("const-GGslVector*" "p")
    '("GArray*" "x")
  )
)

(define-function oscats_rnd_hypergeometric
  (c-name "oscats_rnd_hypergeometric")
  (return-type "guint")
  (parameters
    '("guint" "n1")
    '("guint" "n2")
    '("guint" "N")
  )
)

(define-function oscats_rnd_normal_p
  (c-name "oscats_rnd_normal_p")
  (return-type "gdouble")
  (parameters
    '("gdouble" "x")
    '("gdouble" "sd")
  )
)

(define-function oscats_rnd_chisq_p
  (c-name "oscats_rnd_chisq_p")
  (return-type "gdouble")
  (parameters
    '("gdouble" "x")
    '("gdouble" "nu")
  )
)

(define-function oscats_rnd_F_p
  (c-name "oscats_rnd_F_p")
  (return-type "gdouble")
  (parameters
    '("gdouble" "x")
    '("gdouble" "nu1")
    '("gdouble" "nu2")
  )
)

(define-function oscats_rnd_t_p
  (c-name "oscats_rnd_t_p")
  (return-type "gdouble")
  (parameters
    '("gdouble" "x")
    '("gdouble" "nu")
  )
)

(define-function oscats_rnd_sample
  (c-name "oscats_rnd_sample")
  (return-type "none")
  (parameters
    '("const-GPtrArray*" "population")
    '("guint" "num")
    '("GPtrArray*" "sample")
    '("gboolean" "replace")
  )
)



;; From test.h

(define-function oscats_test_get_type
  (c-name "oscats_test_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-method administer
  (of-object "OscatsTest")
  (c-name "oscats_test_administer")
  (return-type "none")
  (parameters
    '("OscatsExaminee*" "e")
  )
)

(define-method set_hint
  (of-object "OscatsTest")
  (c-name "oscats_test_set_hint")
  (return-type "none")
  (parameters
    '("GBitArray*" "hint")
  )
)



;; From chooser.h

(define-function oscats_alg_chooser_get_type
  (c-name "oscats_alg_chooser_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-method set_c_criterion
  (of-object "OscatsAlgChooser")
  (c-name "oscats_alg_chooser_set_c_criterion")
  (return-type "none")
  (parameters
    '("OscatsAlgChooserCriterion" "f")
  )
)

(define-method choose
  (of-object "OscatsAlgChooser")
  (c-name "oscats_alg_chooser_choose")
  (return-type "gint")
  (parameters
    '("const-OscatsExaminee*" "e")
    '("GBitArray*" "eligible")
    '("gpointer" "data")
  )
)



;; From class_rates.h

(define-function oscats_alg_class_rates_get_type
  (c-name "oscats_alg_class_rates_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-method num_examinees
  (of-object "OscatsAlgClassRates")
  (c-name "oscats_alg_class_rates_num_examinees")
  (return-type "guint")
)

(define-method get_pattern_rate
  (of-object "OscatsAlgClassRates")
  (c-name "oscats_alg_class_rates_get_pattern_rate")
  (return-type "gdouble")
)

(define-method get_attribute_rate
  (of-object "OscatsAlgClassRates")
  (c-name "oscats_alg_class_rates_get_attribute_rate")
  (return-type "gdouble")
  (parameters
    '("guint" "i")
  )
)

(define-method get_misclassify_freq
  (of-object "OscatsAlgClassRates")
  (c-name "oscats_alg_class_rates_get_misclassify_freq")
  (return-type "gdouble")
  (parameters
    '("guint" "num")
  )
)

(define-method num_examinees_by_pattern
  (of-object "OscatsAlgClassRates")
  (c-name "oscats_alg_class_rates_num_examinees_by_pattern")
  (return-type "guint")
  (parameters
    '("const-OscatsAttributes*" "attr")
  )
)

(define-method get_rate_by_pattern
  (of-object "OscatsAlgClassRates")
  (c-name "oscats_alg_class_rates_get_rate_by_pattern")
  (return-type "gdouble")
  (parameters
    '("const-OscatsAttributes*" "attr")
  )
)



;; From closest_diff.h

(define-function oscats_alg_closest_diff_get_type
  (c-name "oscats_alg_closest_diff_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From estimate_alpha.h

(define-function oscats_alg_estimate_alpha_get_type
  (c-name "oscats_alg_estimate_alpha_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From estimate_theta.h

(define-function oscats_alg_estimate_theta_get_type
  (c-name "oscats_alg_estimate_theta_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-function oscats_estimate_theta_mle
  (c-name "oscats_estimate_theta_mle")
  (return-type "gboolean")
  (parameters
    '("const-GPtrArray*" "items")
    '("const-GByteArray*" "resp")
    '("const-OscatsCovariates*" "covariates")
    '("GGslVector*" "theta")
    '("GGslMatrix*" "err")
  )
)

(define-function oscats_estimate_theta_eap
  (c-name "oscats_estimate_theta_eap")
  (return-type "none")
  (parameters
    '("const-GPtrArray*" "items")
    '("const-GByteArray*" "resp")
    '("const-OscatsCovariates*" "covariates")
    '("GGslVector*" "theta")
    '("GGslMatrix*" "err")
    '("const-GGslVector*" "mu")
    '("const-GGslMatrix*" "Sigma")
  )
)

(define-function oscats_estimate_theta_mle_set_tol
  (c-name "oscats_estimate_theta_mle_set_tol")
  (return-type "none")
  (parameters
    '("gdouble" "tol")
  )
)

(define-function oscats_estimate_theta_eap_set_eps
  (c-name "oscats_estimate_theta_eap_set_eps")
  (return-type "none")
  (parameters
    '("gdouble" "eps")
  )
)



;; From exposure_counter.h

(define-function oscats_alg_exposure_counter_get_type
  (c-name "oscats_alg_exposure_counter_get_type")
  (return-type "GType")
  (parameters
  )
)

(define-method num_examinees
  (of-object "OscatsAlgExposureCounter")
  (c-name "oscats_alg_exposure_counter_num_examinees")
  (return-type "guint")
)

(define-method get_rate
  (of-object "OscatsAlgExposureCounter")
  (c-name "oscats_alg_exposure_counter_get_rate")
  (return-type "gdouble")
  (parameters
    '("const-OscatsItem*" "item")
  )
)



;; From fixed_length.h

(define-function oscats_alg_fixed_length_get_type
  (c-name "oscats_alg_fixed_length_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From max_fisher.h

(define-function oscats_alg_max_fisher_get_type
  (c-name "oscats_alg_max_fisher_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From max_kl_cont.h

(define-function oscats_alg_max_kl_cont_get_type
  (c-name "oscats_alg_max_kl_cont_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From max_kl_discr.h

(define-function oscats_alg_max_kl_discr_get_type
  (c-name "oscats_alg_max_kl_discr_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From pick_rand.h

(define-function oscats_alg_pick_rand_get_type
  (c-name "oscats_alg_pick_rand_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From simulate_alpha.h

(define-function oscats_alg_simulate_alpha_get_type
  (c-name "oscats_alg_simulate_alpha_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From simulate_theta.h

(define-function oscats_alg_simulate_theta_get_type
  (c-name "oscats_alg_simulate_theta_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From dina.h

(define-function oscats_discr_model_dina_get_type
  (c-name "oscats_discr_model_dina_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From l1p.h

(define-function oscats_cont_model_l1p_get_type
  (c-name "oscats_cont_model_l1p_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From l2p.h

(define-function oscats_cont_model_l2p_get_type
  (c-name "oscats_cont_model_l2p_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From l3p.h

(define-function oscats_cont_model_l3p_get_type
  (c-name "oscats_cont_model_l3p_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From nida.h

(define-function oscats_discr_model_nida_get_type
  (c-name "oscats_discr_model_nida_get_type")
  (return-type "GType")
  (parameters
  )
)



;; From nominal.h

(define-function oscats_cont_model_nominal_get_type
  (c-name "oscats_cont_model_nominal_get_type")
  (return-type "GType")
  (parameters
  )
)


